package com.IO流.OutputStream字节输出流;

import org.junit.jupiter.api.Test;

import java.io.FileOutputStream;
import java.io.IOException;
@SuppressWarnings("all")
public class FileOutPutStream01  {
    public static void main(String[] args) {
        /**  fileOutputStream  = new FileOutputStream(filepath);
         * 1.如果该filepath路径下的文件未创建，就会创建一个文件再写进去；
         *
         * 2.写入规则  每次关闭前写入的东西会追加到文件内容末尾；关闭后如果不设置追加，会覆盖原先的内容；
         *  String str = "hello";
         *  fileOutputStream.write(str.getBytes());  以byte数组的形式写入数据；
         *  fileOutputStream.write('A');             以一个字节的方式写入数据；
         *  fileOutputStream.write(str.getBytes()，int off，int len);  以byte数组的形式 从数组的 off 下标开始将 len 个字节 写入数据
         *
         * 3.构造器的重载    每次关闭前写入的东西会追加到文件内容末尾；关闭后如果不设置追加，会覆盖原先的内容；
         *  如果构造器中加上true，那么每次重新打开文件，写入时就会追加到文件内容的  new FileOutputStream(filepath，true);
         *  如果加上false 或者没有boolean值（默认false），就不会追加到内容后面； new FileOutputStream(filepath，false);
         *
         */

    }
    @Test
    public void test01() {
        String filepath = "D:\\JAVA_test\\output01.txt"; ///文件路径
        FileOutputStream fileOutputStream = null;

        try {
            fileOutputStream  = new FileOutputStream(filepath);
            String str = "hello,";
//            fileOutputStream.write(str.getBytes());
            fileOutputStream.write(str.getBytes(),0,str.length());
            fileOutputStream.write('A');
            System.out.println("写入成功");
        } catch (IOException e) {
            throw new RuntimeException(e);
        }finally {
            try {
                fileOutputStream.close();  ///关闭文件
                System.out.println("文件关闭成功");
            } catch (IOException e) {
                System.out.println("文件关闭失败");
                throw new RuntimeException(e);
            }
        }
    }
}
